#include "led.h"

void ledInit(void){
	//1gpio时钟使能
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能是GPIOA
	//2 led gpio初始化
	GPIO_InitTypeDef initDef;
	initDef.GPIO_Mode = GPIO_Mode_Out_PP; //推完输出
	initDef.GPIO_Speed = GPIO_Speed_50MHz; //速率
	
	initDef.GPIO_Pin = LED_PIN_0;//引脚pa0
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_0);
	
	
	initDef.GPIO_Pin = LED_PIN_1;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_1);
	
	
	initDef.GPIO_Pin = LED_PIN_1;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_1);
	
	
	initDef.GPIO_Pin = LED_PIN_2;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_2);
	
	initDef.GPIO_Pin = LED_PIN_3;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_3);
	
	initDef.GPIO_Pin = LED_PIN_4;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_4);
	
	initDef.GPIO_Pin = LED_PIN_5;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_5);
	
	initDef.GPIO_Pin = LED_PIN_6;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_6);
	
	initDef.GPIO_Pin = LED_PIN_7;//引脚pa1
	GPIO_Init(LED_PORT,&initDef);  //初始化gpioc
	GPIO_SetBits(LED_PORT,LED_PIN_7);
	
}

/**
  用一个8位的二进制来控制8个灯
   比如： 11111110（第1个灯是低电平，亮灯）
					11111101（第2个灯是低电平，亮灯）
**/
void ledWriteData(uint16_t GPIO_Pin_from,u8 num,u8 data){ 
	//控制8个灯
	for(u8 i=0;i<num;i++){	
		if(data&0x01){
			GPIO_WriteBit(LED_PORT,GPIO_Pin_from<<i,Bit_SET);	
		}else{
			GPIO_WriteBit(LED_PORT,GPIO_Pin_from<<i,Bit_RESET);
		}	
		//处理完一个丢掉一个
		data = data >> 1;
	}
}
